#include <stdio.h>
#include <signal.h>

#define TRUE 1
#define FALSE 0
#define BELLS "\007\007\007"

int alarm_flag = FALSE;

setflag() // SIGALRM处理函数
{
    alarm_flag = TRUE;
}

main(int argc, char* argv[])
{
    int nsecs;
    int i;

    if(argc<2) {
        fprintf(stderr, "UsageA:tml #minutes message\n");
        exit(1);
    }

    if((nsecs = atoi(argv[1])* 60) <= 0) {
        fprintf(stderr, "Invalid time\n");
        exit(2);
    }

    signal(SIGALRM, setflag); // 设定SIGALRM的关联动作
    alarm(nsecs); // 设定计时器

    pause(); // 等待

    if(alarm_flag) {
        printf(BELLS);
        for(i=2; i<argc; i++) {
            printf("%s\n", argv[i]);
        }
    }

    exit(0);
}